<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script type="text/javascript">
        //测试题1
        function A()
        {

        }
        A.prototype.n=1;
        var b=new A();
        //新赋值是创建了新堆，所以之前定义的b函数不会随着这次A.prototype的改编而改变
        A.prototype=
        {
            n:2,
            m:3
        };
        //创建c函数因为是在A.prototype被赋值之后，所以以A()为构造函数定义c函数就会继承他的新数值
        var c=new A();
        console.log(b.n,b.m,c.n,c.m);
        //我的答案：b.n=1，b.m=undifiend，c.n=2，c.m=3
        //正确答案：b.n=1，b.m=undifiend，c.n=2，c.m=3

        //测试题2
        function F(){}
        Object.prototype.a=function()
        {
            console.log("a()");
        };
        Function.prototype.b=function()
        {
            console.log("b()");
        };
        var f=new F();
        f.a();
        //f.b();
        F.a();
        F.b();
        //我的答案： f.a()——a()，f.b()——undefiend，F.a()——a()，F.b——b()
    </script>
</head>
<body>
    
</body>
</html>